package com.example.demo;

public class Fruit {

    // 定义水果的价格
    private static final int APPLE_P = 8;//苹果
    private static final int STRAWBERRY_P = 13;//草莓
    private static final int MANGO_P = 20;//芒果

    /**
     * 计算购买的苹果和草莓的总价（不考虑促销）
     *
     * @param appleKg     苹果的斤数
     * @param strawberryKg 草莓的斤数
     * @return 总价
     */
    public static int calculateTotalPrice(int appleKg, int strawberryKg) {
        if (appleKg < 0 || strawberryKg < 0) {
            throw new IllegalArgumentException("水果斤数不能为负数");
        }
        return appleKg * APPLE_P + strawberryKg * STRAWBERRY_P;
    }

    /**
     * 计算购买的苹果、草莓和芒果的总价（不考虑促销）
     *
     * @param appleKg     苹果的斤数
     * @param strawberryKg 草莓的斤数
     * @param mangoKg      芒果的斤数
     * @return 总价
     */
    public static int calculateTotalPrice(int appleKg, int strawberryKg, int mangoKg) {
        if (appleKg < 0 || strawberryKg < 0 || mangoKg < 0) {
            throw new IllegalArgumentException("水果斤数不能为负数");
        }
        return appleKg * APPLE_P +
                strawberryKg * STRAWBERRY_P +
                mangoKg * MANGO_P;
    }

    /**
     * 计算购买的苹果、草莓和芒果的总价（考虑草莓8折促销）
     *
     * @param appleKg     苹果的斤数
     * @param strawberryKg 草莓的斤数
     * @param mangoKg      芒果的斤数
     * @return 总价
     */
    public static int calculateTotalPriceWithStrawberryDiscount(int appleKg, int strawberryKg, int mangoKg) {
        if (appleKg < 0 || strawberryKg < 0 || mangoKg < 0) {
            throw new IllegalArgumentException("水果斤数不能为负数");
        }
        int strawberryPrice = (int) (strawberryKg * STRAWBERRY_P * 0.8);
        return appleKg * APPLE_P +
                strawberryPrice +
                mangoKg * MANGO_P;
    }

    /**
     * 计算购买的苹果、草莓和芒果的总价（考虑草莓8折促销和满100减10的活动）
     *
     * @param appleKg     苹果的斤数
     * @param strawberryKg 草莓的斤数
     * @param mangoKg      芒果的斤数
     * @return 总价
     */
    public static int calculateTotalPriceWithPromotions(int appleKg, int strawberryKg, int mangoKg) {
        if (appleKg < 0 || strawberryKg < 0 || mangoKg < 0) {
            throw new IllegalArgumentException("水果斤数不能为负数");
        }
        int strawberryPrice = (int) (strawberryKg * STRAWBERRY_P * 0.8);
        int totalPrice = appleKg * APPLE_P +
                strawberryPrice +
                mangoKg * MANGO_P;
        if (totalPrice >= 100) {
            totalPrice -= 10;
        }
        return totalPrice;
    }

    public static void main(String[] args) {
        // 示例调用
        int appleKgA = 5; // 例如顾客 A 购买 5 斤苹果
        int strawberryKgA = 3; // 例如顾客 A 购买 3 斤草莓
        int totalPriceA = calculateTotalPrice(appleKgA, strawberryKgA);
        System.out.println("顾客 A 总价格为: " + totalPriceA + " 元");

        int appleKgB = 5; // 例如顾客 B 购买 5 斤苹果
        int strawberryKgB = 3; // 例如顾客 B 购买 3 斤草莓
        int mangoKgB = 2; // 例如顾客 B 购买 2 斤芒果
        int totalPriceB = calculateTotalPrice(appleKgB, strawberryKgB, mangoKgB);
        System.out.println("顾客 B 总价格为: " + totalPriceB + " 元");

        int appleKgC = 5; // 例如顾客 C 购买 5 斤苹果
        int strawberryKgC = 3; // 例如顾客 C 购买 3 斤草莓
        int mangoKgC = 2; // 例如顾客 C 购买 2 斤芒果
        int totalPriceC = calculateTotalPriceWithStrawberryDiscount(appleKgC, strawberryKgC, mangoKgC);
        System.out.println("顾客 C 总价格为: " + totalPriceC + " 元");

        int appleKgD = 5; // 例如顾客 D 购买 5 斤苹果
        int strawberryKgD = 3; // 例如顾客 D 购买 3 斤草莓
        int mangoKgD = 2; // 例如顾客 D 购买 2 斤芒果
        int totalPriceD = calculateTotalPriceWithPromotions(appleKgD, strawberryKgD, mangoKgD);
        System.out.println("顾客 D 总价格为: " + totalPriceD + " 元");
    }
}
